home *** CD-ROM | disk | FTP | other *** search
/ The Arcade BBS / arcadebbs.zip / arcadebbs / bbstools / WWIV Mods / COMMON20.ZIP / COMMON.H < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-24  |  10.8 KB  |  547 lines

  1. #define COMMON
  2. #define COMMON_VER 1.0
  3.  
  4.  
  5. #define alt_pl(s) outstr((s)); if(endofline[0]){outstr(endofline); endofline[0]=0;} outstr("\r\n");
  6.  
  7. #define COMMAND_F1        (F1<<4)
  8. #define COMMAND_SF1       (SF1<<4)
  9. #define COMMAND_CF1       (CF1<<4)
  10.  
  11. #define COMMAND_F2        (F2<<4)
  12. #define COMMAND_SF2       (SF2<<4)
  13. #define COMMAND_CF2       (CF2<<4)
  14.  
  15. #define COMMAND_F3        (F3<<4)
  16. #define COMMAND_SF3       (SF3<<4)
  17. #define COMMAND_CF3       (CF3<<4)
  18.  
  19. #define COMMAND_F4        (F4<<4)
  20. #define COMMAND_SF4       (SF4<<4)
  21. #define COMMAND_CF4       (CF4<<4)
  22.  
  23. #define COMMAND_F5        (F5<<4)
  24. #define COMMAND_SF5       (SF5<<4)
  25. #define COMMAND_CF5       (CF5<<4)
  26.  
  27. #define COMMAND_F6        (F6<<4)
  28. #define COMMAND_SF6       (SF6<<4)
  29. #define COMMAND_CF6       (CF6<<4)
  30.  
  31. #define COMMAND_F7        (F7<<4)
  32. #define COMMAND_SF7       (SF7<<4)
  33. #define COMMAND_CF7       (CF7<<4)
  34.  
  35. #define COMMAND_F8        (F8<<4)
  36. #define COMMAND_SF8       (SF8<<4)
  37. #define COMMAND_CF8       (CF8<<4)
  38.  
  39. #define COMMAND_F9        (F9<<4)
  40. #define COMMAND_SF9       (SF9<<4)
  41. #define COMMAND_CF9       (CF9<<4)
  42.  
  43. #define COMMAND_F10       (F10<<4)
  44. #define COMMAND_SF10      (SF10<<4)
  45. #define COMMAND_CF10      (CF10<<4)
  46.  
  47. // 400-499 For special command keys
  48. #define HELP        ((unsigned)(65000L))
  49. #define HOTKEY      ((unsigned)(65001L))
  50.  
  51. #define GET_OUT     (ESC)
  52. #define EXECUTE     (RETURN)
  53.  
  54.  
  55.  
  56. #define COMMAND_LEFT     (LARROW<<4)
  57. #define COMMAND_RIGHT    (RARROW<<4)
  58. #define COMMAND_UP       (UPARROW<<4)
  59. #define COMMAND_DOWN     (DARROW<<4)
  60. #define COMMAND_INSERT   (INSERT<<4)
  61. #define COMMAND_PAGEUP   (PAGEUP<<4)
  62. #define COMMAND_PAGEDN   (PAGEDN<<4)
  63. #define COMMAND_HOME     (HOME<<4)
  64. #define COMMAND_END      (END<<4)
  65. #define COMMAND_STAB     (STAB<<4)
  66. #define COMMAND_DELETE   (DELETE<<4)
  67.  
  68. #define COMMAND_AA       (AA<<4)
  69. #define COMMAND_AB       (AB<<4)
  70. #define COMMAND_AC       (AC<<4)
  71. #define COMMAND_AD       (AD<<4)
  72. #define COMMAND_AE       (AE<<4)
  73. #define COMMAND_AF       (AF<<4)
  74. #define COMMAND_AG       (AG<<4)
  75. #define COMMAND_AH       (AH<<4)
  76. #define COMMAND_AI       (AI<<4)
  77. #define COMMAND_AJ       (AJ<<4)
  78. #define COMMAND_AK       (AK<<4)
  79. #define COMMAND_AL       (AL<<4)
  80. #define COMMAND_AM       (AM<<4)
  81. #define COMMAND_AN       (AN<<4)
  82. #define COMMAND_AO       (AO<<4)
  83. #define COMMAND_AP       (AP<<4)
  84. #define COMMAND_AQ       (AQ<<4)
  85. #define COMMAND_AR       (AR<<4)
  86. #define COMMAND_AS       (AS<<4)
  87. #define COMMAND_AT       (AT<<4)
  88. #define COMMAND_AU       (AU<<4)
  89. #define COMMAND_AV       (AV<<4)
  90. #define COMMAND_AW       (AW<<4)
  91. #define COMMAND_AX       (AX<<4)
  92. #define COMMAND_AY       (AY<<4)
  93. #define COMMAND_AZ       (AZ<<4)
  94.  
  95.  
  96.  
  97. // The final character of an ansi sequence 
  98. #define OB ('[')
  99. #define O ('O')
  100. #define A_HOME ('H')
  101. #define A_LEFT ('D')
  102. #define A_END ('K')
  103. #define A_UP ('A')
  104. #define A_DOWN ('B')
  105. #define A_RIGHT ('C')
  106. #define A_INSERT ('r')
  107. #define A_DELETE ('s')
  108.  
  109.  
  110. #define SPACE        32
  111.  
  112. #define OFF           0
  113. #define ON            1
  114. #define TRUE          1
  115. #define FALSE         0
  116. #define YES           1
  117. #define NO            0
  118.  
  119.  
  120. #define RETURN      13
  121. #define SOFTRETURN  10
  122. #define HARDRETURN  RETURN
  123. #define CRETURN     SOFTRETURN
  124.  
  125. #define HRETURN     HARDRETURN
  126. #define SRETURN     SOFTRETURN
  127.  
  128. #define ENTER       RETURN
  129. #define SOFTENTER   SOFTRETURN
  130. #define HARDENTER   HARDRETURN
  131. #define CENTER      CRETURN
  132.  
  133.  
  134. #define BKSPACE     8
  135. #define BACKSPACE   8
  136. #define CBACKSPACE  127
  137. #define CBKSPACE    127
  138.  
  139. #define ESC         27
  140. #define TAB         9
  141.  
  142.  
  143. /* Stab is an extended 15 (0 ascii, 15 ext) */
  144. #define STAB        15
  145.  
  146.  
  147. #define PAGEUP      73
  148. #define PAGEDN      81
  149. #define PGUP        PAGEUP
  150. #define PGDN        PAGEDN
  151. #define PAGEDOWN    PAGEDN
  152. #define CPAGEUP     132
  153. #define CPAGEDN     118
  154. #define CPGUP       CPAGEUP
  155. #define CPGDN       CPAGEDN
  156. #define CPGDOWN     DPAGEDN
  157.  
  158. #define APAGEUP     153
  159. #define APAGEDN     161
  160. #define APGDN       APAGEDN
  161. #define APGUP       APAGEUP
  162.  
  163.  
  164. #define LARROW      75
  165. #define RARROW      77
  166. #define UPARROW     72
  167. #define UARROW      72
  168. #define DNARROW     80
  169. #define DARROW      80
  170.  
  171. #define CRARROW     116
  172. #define CLARROW     115
  173. #define CUARROW     141
  174. #define CDARROW     145
  175.  
  176.  
  177. #define ALARROW     155
  178. #define ARARROW     157
  179. #define AUARROW     152
  180. #define ADARROW     160
  181.  
  182. #define AUPARROW    AUARROW
  183. #define ADNARROW    ADARROW
  184.  
  185.  
  186.         
  187.  
  188. #define HOME        71
  189. #define CHOME       119
  190. #define END         79
  191. #define CEND        117
  192. #define INSERT      82
  193. #define DELETE      83
  194.  
  195. #define F1          59
  196. #define F2          60
  197. #define F3          61
  198. #define F4          62
  199. #define F5          63
  200. #define F6          64
  201. #define F7          65
  202. #define F8          66
  203. #define F9          67
  204. #define F10         68
  205.  
  206.  
  207. #define AF1         104
  208. #define AF2         105
  209. #define AF3         106
  210. #define AF4         107
  211. #define AF5         108
  212. #define AF6         109
  213. #define AF7         110
  214. #define AF8         111
  215. #define AF9         112
  216. #define AF10        113
  217.  
  218. #define SF1         84
  219. #define SF2         85
  220. #define SF3         86
  221. #define SF4         87
  222. #define SF5         88
  223. #define SF6         89
  224. #define SF7         90
  225. #define SF8         91
  226. #define SF9         92
  227. #define SF10        93
  228.  
  229. #define CF1         94
  230. #define CF2         95
  231. #define CF3         96
  232. #define CF4         97
  233. #define CF5         98
  234. #define CF6         99
  235. #define CF7         100
  236. #define CF8         101
  237. #define CF9         102
  238. #define CF10        103
  239.  
  240. #define CA          1
  241. #define CB          2
  242. #define CC          3
  243. #define CD          4
  244. #define CE          5
  245. #define CF          6
  246. #define CG          7
  247. #define CH          8
  248. #define CI          9
  249. #define CJ          10
  250. #define CK          11
  251. #define CL          12
  252. #define CM          13
  253. #define CN          14
  254. #define CO          15
  255. #define CP          16
  256. #define CQ          17
  257. #define CR          18
  258. #define CS          19
  259. #define CT          20
  260. #define CU          21
  261. #define CV          22
  262. #define CW          23
  263. #define CX          24
  264. #define CY          25
  265. #define CZ          26
  266.  
  267.  
  268. #define AA  30
  269. #define AB  48
  270. #define AC  46
  271. #define AD  32
  272. #define AE  18
  273. #define AF  33
  274. #define AG  34
  275. #define AH  35
  276. #define AI  23
  277. #define AJ  36
  278. #define AK  37
  279. #define AL  38
  280. #define AM  50
  281. #define AN  49
  282. #define AO  24
  283. #define AP  25
  284. #define AQ  16
  285. #define AR  19
  286. #define AS  31
  287. #define AT  20
  288. #define AU  22
  289. #define AV  47
  290. #define AW  17
  291. #define AX  45
  292. #define AY  21
  293. #define AZ  44
  294.  
  295.  
  296. struct side_menu_colors
  297. {
  298.   unsigned normal_highlight;
  299.   unsigned normal_menu_item;
  300.   unsigned current_highlight;
  301.   unsigned current_menu_item;
  302. };
  303.  
  304. struct mod_info
  305. {
  306.   char name[31];
  307.   char description[81];
  308.   char author[31];
  309.  
  310.   int sig_ver;
  311.   int min_ver;
  312.   char revision;
  313. };
  314.  
  315. #define JUSTIFY_LEFT   0
  316. #define JUSTIFY_RIGHT  1
  317. #define JUSTIFY_CENTER 2
  318.  
  319.  
  320. // For get_kb_event, decides if the number pad turns '8' into an arrow etc.. or not
  321. #define NOTNUMBERS 1
  322. #define NUMBERS    0
  323.  
  324. // Variable menu Junk
  325. #define COMMON_NONE    0
  326. #define COMMON_PARTIAL 1
  327. #define COMMON_FULL    2
  328.  
  329.  
  330.  
  331.  
  332. // For screen updates
  333. #define COMMON_INACTIVE 0
  334. #define COMMON_ACTIVE   1
  335. #define COMMON_CURRENT  2
  336. #define COMMON_ITEM     3
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343. // Defines for listplus mod
  344. #define LIST_DIR    0
  345. #define SEARCH_ALL  1
  346. #define NSCAN_DIR   2
  347. #define NSCAN_NSCAN 3
  348.  
  349. #define ALL_DIRS    0
  350. #define THIS_DIR    1
  351. #define NSCAN_DIRS  2
  352. // End defines for listplus mod
  353.  
  354.  
  355. // Defines for Q/Nscan Plus mod
  356. #define QSCAN       0
  357. #define NSCAN       1
  358.  
  359.  
  360. #define IE_MIXED   0
  361. #define IE_UPPER   1
  362. #define IE_PROPPER 2
  363.  
  364. typedef struct
  365. {
  366.   int pos, curlen, maxlen;
  367.  
  368.   int first;
  369.  
  370.   int xpos, ypos, amount_to_show;
  371.   int curxpos, curypos;
  372.  
  373.   int insert, curmode, bs, char_case;
  374.   char *text;
  375.   char *show;
  376.  
  377. } inputeditrec;
  378.  
  379.  
  380. typedef struct
  381. {
  382.   int xpos, ypos, amount_to_show;
  383.   int curxpos, curypos;
  384.  
  385.   int justify;
  386.   int bg, cur_color;
  387.  
  388.   char *text;
  389.   char *show;
  390. } showtextrec;
  391.  
  392. struct individuals
  393. {
  394.   unsigned one : 1;
  395.   unsigned two : 1;
  396.   unsigned three : 1;
  397.   unsigned four : 1;
  398.   unsigned five : 1;
  399.   unsigned six : 1;
  400.   unsigned seven : 1;
  401.   unsigned eight : 1;
  402.   unsigned nine : 1;
  403.   unsigned ten : 1;
  404.   unsigned eleven : 1;
  405.   unsigned twelve : 1;
  406.   unsigned thirteen : 1;
  407.   unsigned fourteen : 1;
  408.   unsigned fifteen : 1;
  409.   unsigned sixteen : 1;
  410. };
  411.  
  412. struct nonindividual
  413. {
  414.   unsigned int ni;
  415. };
  416.  
  417.  
  418.  
  419. union bitinfo
  420. {
  421.   struct individuals i;
  422.   struct nonindividual n;
  423. };
  424.  
  425. typedef struct
  426. {
  427.   union bitinfo bi;
  428.   int xpos, ypos;
  429.   int amount; // Amount of active items
  430.   int pos;
  431.  
  432.   int check_char, fill_char;
  433. } checkboxrec;
  434.  
  435.  
  436.  
  437. typedef struct
  438. {
  439.   int xpos, ypos;
  440.   int amount; // Amount of active items
  441.   int pos, last;
  442.  
  443.   int radio_char, fill_char;
  444. }radiobuttonrec;
  445.  
  446.  
  447.  
  448. typedef union
  449. {
  450.     showtextrec    st;
  451.     inputeditrec   ie;
  452.     radiobuttonrec rb;
  453.     checkboxrec    cb;
  454. } VARI_TYPES;
  455.  
  456. // Struct types
  457. #define SHOW_TEXT_TYPE    0
  458. #define INPUT_EDIT_TYPE   1
  459. #define RADIO_BUTTON_TYPE 2
  460. #define CHECK_BOX_TYPE    3
  461.  
  462.  
  463. struct VariMenuRec
  464. {
  465.   int amount; // Only used in the first record
  466.  
  467.   int type;
  468.  
  469.   VARI_TYPES *types;
  470.  
  471.   int xpos, ypos;  // copied from each type for easy access
  472.  
  473.   unsigned hotkey;
  474.   int active;
  475.   int returnvalue;
  476.  
  477.   struct VariMenuRec *next;
  478. };
  479.  
  480. typedef struct VariMenuRec varimenurec;
  481.  
  482. typedef struct
  483. {
  484.   // mi=menu item, ci=current item
  485.   unsigned mi_normal, mi_hi, ci_normal, ci_hi;
  486.   unsigned inactive_color;
  487.   int redraw; // COMMON_NONE, COMMON_PARTIAL (pos and last), COMMON_FULL
  488.   int pos, last;
  489.  
  490.   int xpos, ypos;  // Where the cursor is right now
  491.  
  492.   unsigned event;
  493.   int status;
  494.   int returnvalue;
  495. } varimenuinfo;
  496.  
  497.  
  498. #define check_ar(which) check_bitfield(thisuser.ar, (which))
  499. #define check_dar(which) check_bitfield(thisuser.dar, (which))
  500.  
  501. #define malloc malloca
  502. #define faralloc malloca
  503.  
  504. #define GOTO_XY(x,y) goxy((x),(y));
  505.  
  506.  
  507. enum COMPRESSIONS {
  508.   COMPRESSION_UNKNOWN,
  509.   COMPRESSION_ARJ,
  510.   COMPRESSION_ZIP,
  511.   COMPRESSION_PAK,
  512.   COMPRESSION_ZOO,
  513.   COMPRESSION_LHA,
  514. };
  515.  
  516. #define BOOL(x) (!(!(x)))
  517.  
  518. #define BitSet(arg,posn) ((arg) | (1L << (posn)))
  519. #define BitClr(arg,posn) ((arg) & ~(1L << (posn)))
  520. #define BitTst(arg,posn) BOOL((arg) & (1L << (posn)))
  521.  
  522.  
  523. #ifdef __cplusplus
  524.   #define WHEREX() _wherex()
  525.   #define WHEREY() _wherey()
  526.   #define INTERRUPTARG (void interrupt(*) (...))
  527. #else
  528.   #define WHEREX() wherex()
  529.   #define WHEREY() wherey()
  530.   #define INTERRUPTARG (void interrupt(*) ())
  531. #endif
  532.  
  533.  
  534. typedef struct
  535. {
  536.   int width;
  537.   int amount_per_square;
  538.  
  539.   char square_list[10];
  540.  
  541.   int empty_space, side_char1, side_char2;
  542.   int surround_color, box_color;
  543.  
  544.   int total_items, current_item;
  545.   long last_maj_pos, last_min_pos;
  546. } statusbarrec;
  547.